public class MyArray2<T> {
    public T[]array=(T[]) new Object[10];

    public T getPos(int pos){
        return this.array[pos];
    }
    public void setVal(int pos,T val){
        this.array[pos]=val;
    }
    public T[] getArray(){
        return array;
    }

    public static void main(String[] args) {
        MyArray2<Integer> myArray2=new MyArray2<>();

        Integer[]strings=myArray2.getArray();
        //这里的返回类型是Object
        //实际上里面可能是任何的数据类型
        //可能是String可能是Person，运行时候，直接转给Integer类型的数组，编译器认为是不安全的
        //正确的方式是通过反射创建
        //
    }

    //这个程序会报错：替换后的方法为：将Object[]的对象分配给Integer[]引用
    //
}
